// 通过requuire.context 获取目录；
const filesMD = require.context('@/source/', true, /\.md$/);

// 需要抛出的函数
export default {
    // 总处理事件，处理内容分析、首页列表生成；
    GenerateMdList() {
        // 獲取目錄
        const filesMDNames = filesMD.keys();
        // 重組目錄
        let path = this.GenerateNewCatalog(filesMDNames);
        // 遍歷名稱準備進行請求content；
        let cont = this.queryCont(path);
        // 解析返回的MD文档并返回每个文件的title、封面、简介、创建时间；
        let list = this.ParsingContent(cont);
        return list;
    },

    // 生成新的目录
    GenerateNewCatalog(path){
        let url = [];
        // 替换目录，稍后进行请求；
        path.map( item => {
            url.push(item.replace('./',''));
        });
        return url;
    },

    //返回所有path，让下一段代码方便解析内容； 
    queryCont(path){
        // 开始前准备一个数组
        let cont = [];
        path.map( item => {
            // 准备重新赋值router
            let content = require('@/source/' + item);
            // push到新数组内
            cont.push(content);
        })
        // 返回新数组
        return cont;
    },

    // 准备返回数组，返回所有页面的title、创建时间、封面等属性；
    ParsingContent(cont){
        // 准备一个空数组，准备接收所解析出来的内容；
        let IndexList = [];
        cont.map( item => {
            // 准备一个对象，准备往对象内开始添加内容
            let textList = {};
            // 返回title;
            textList.title = item.split('title:')[1].split('cover:')[0];
            // 返回封面
            textList.cover = item.split('cover: ')[1].split('content:')[0].replace(/[^a-zA-Z]/g,'');
            // 返回简介
            textList.text = item.split('content:')[1].split('createdTime:')[0]
            // 返回所有内容
            textList.content = item.split('===</p>')[1];
            // 返回创建时间
            textList.covercreatedTime = item.split('createdTime: ')[1].split('</p>')[0].replace(/[\r\n]/g,"").split('===')[0];
            // console.log(textList.content);
            // 将对象push到数组内；
            IndexList.push(textList);
        })
        // 返回数组
        return this.imageRequire(IndexList);
    },

    // content(cont){
    //     let content = '';
    //     cont.split('===').map( (item,idx) => {
    //         console.log(item,idx)
    //     })
    //     return content;
    // },

    imageRequire(arr){
        arr.map( item => {
            item.cover = require('@/assets/images/' + item.cover + '.jpg');
        })
        return arr;
    }
}